package com.woniu.outlet.mysql.po;

import java.util.ArrayList;
import java.util.List;

public class ProductBuyMySQLExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public ProductBuyMySQLExample() {
        oredCriteria = new ArrayList<>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Long value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Long value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Long value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Long value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Long value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Long value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Long> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Long> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Long value1, Long value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Long value1, Long value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andUserIdIsNull() {
            addCriterion("user_id is null");
            return (Criteria) this;
        }

        public Criteria andUserIdIsNotNull() {
            addCriterion("user_id is not null");
            return (Criteria) this;
        }

        public Criteria andUserIdEqualTo(Long value) {
            addCriterion("user_id =", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotEqualTo(Long value) {
            addCriterion("user_id <>", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdGreaterThan(Long value) {
            addCriterion("user_id >", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdGreaterThanOrEqualTo(Long value) {
            addCriterion("user_id >=", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdLessThan(Long value) {
            addCriterion("user_id <", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdLessThanOrEqualTo(Long value) {
            addCriterion("user_id <=", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdIn(List<Long> values) {
            addCriterion("user_id in", values, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotIn(List<Long> values) {
            addCriterion("user_id not in", values, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdBetween(Long value1, Long value2) {
            addCriterion("user_id between", value1, value2, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotBetween(Long value1, Long value2) {
            addCriterion("user_id not between", value1, value2, "userId");
            return (Criteria) this;
        }

        public Criteria andProductTypeIsNull() {
            addCriterion("product_type is null");
            return (Criteria) this;
        }

        public Criteria andProductTypeIsNotNull() {
            addCriterion("product_type is not null");
            return (Criteria) this;
        }

        public Criteria andProductTypeEqualTo(String value) {
            addCriterion("product_type =", value, "productType");
            return (Criteria) this;
        }

        public Criteria andProductTypeNotEqualTo(String value) {
            addCriterion("product_type <>", value, "productType");
            return (Criteria) this;
        }

        public Criteria andProductTypeGreaterThan(String value) {
            addCriterion("product_type >", value, "productType");
            return (Criteria) this;
        }

        public Criteria andProductTypeGreaterThanOrEqualTo(String value) {
            addCriterion("product_type >=", value, "productType");
            return (Criteria) this;
        }

        public Criteria andProductTypeLessThan(String value) {
            addCriterion("product_type <", value, "productType");
            return (Criteria) this;
        }

        public Criteria andProductTypeLessThanOrEqualTo(String value) {
            addCriterion("product_type <=", value, "productType");
            return (Criteria) this;
        }

        public Criteria andProductTypeLike(String value) {
            addCriterion("product_type like", value, "productType");
            return (Criteria) this;
        }

        public Criteria andProductTypeNotLike(String value) {
            addCriterion("product_type not like", value, "productType");
            return (Criteria) this;
        }

        public Criteria andProductTypeIn(List<String> values) {
            addCriterion("product_type in", values, "productType");
            return (Criteria) this;
        }

        public Criteria andProductTypeNotIn(List<String> values) {
            addCriterion("product_type not in", values, "productType");
            return (Criteria) this;
        }

        public Criteria andProductTypeBetween(String value1, String value2) {
            addCriterion("product_type between", value1, value2, "productType");
            return (Criteria) this;
        }

        public Criteria andProductTypeNotBetween(String value1, String value2) {
            addCriterion("product_type not between", value1, value2, "productType");
            return (Criteria) this;
        }

        public Criteria andCodeIdIsNull() {
            addCriterion("code_id is null");
            return (Criteria) this;
        }

        public Criteria andCodeIdIsNotNull() {
            addCriterion("code_id is not null");
            return (Criteria) this;
        }

        public Criteria andCodeIdEqualTo(String value) {
            addCriterion("code_id =", value, "codeId");
            return (Criteria) this;
        }

        public Criteria andCodeIdNotEqualTo(String value) {
            addCriterion("code_id <>", value, "codeId");
            return (Criteria) this;
        }

        public Criteria andCodeIdGreaterThan(String value) {
            addCriterion("code_id >", value, "codeId");
            return (Criteria) this;
        }

        public Criteria andCodeIdGreaterThanOrEqualTo(String value) {
            addCriterion("code_id >=", value, "codeId");
            return (Criteria) this;
        }

        public Criteria andCodeIdLessThan(String value) {
            addCriterion("code_id <", value, "codeId");
            return (Criteria) this;
        }

        public Criteria andCodeIdLessThanOrEqualTo(String value) {
            addCriterion("code_id <=", value, "codeId");
            return (Criteria) this;
        }

        public Criteria andCodeIdLike(String value) {
            addCriterion("code_id like", value, "codeId");
            return (Criteria) this;
        }

        public Criteria andCodeIdNotLike(String value) {
            addCriterion("code_id not like", value, "codeId");
            return (Criteria) this;
        }

        public Criteria andCodeIdIn(List<String> values) {
            addCriterion("code_id in", values, "codeId");
            return (Criteria) this;
        }

        public Criteria andCodeIdNotIn(List<String> values) {
            addCriterion("code_id not in", values, "codeId");
            return (Criteria) this;
        }

        public Criteria andCodeIdBetween(String value1, String value2) {
            addCriterion("code_id between", value1, value2, "codeId");
            return (Criteria) this;
        }

        public Criteria andCodeIdNotBetween(String value1, String value2) {
            addCriterion("code_id not between", value1, value2, "codeId");
            return (Criteria) this;
        }

        public Criteria andBuyAmountIsNull() {
            addCriterion("buy_amount is null");
            return (Criteria) this;
        }

        public Criteria andBuyAmountIsNotNull() {
            addCriterion("buy_amount is not null");
            return (Criteria) this;
        }

        public Criteria andBuyAmountEqualTo(Integer value) {
            addCriterion("buy_amount =", value, "buyAmount");
            return (Criteria) this;
        }

        public Criteria andBuyAmountNotEqualTo(Integer value) {
            addCriterion("buy_amount <>", value, "buyAmount");
            return (Criteria) this;
        }

        public Criteria andBuyAmountGreaterThan(Integer value) {
            addCriterion("buy_amount >", value, "buyAmount");
            return (Criteria) this;
        }

        public Criteria andBuyAmountGreaterThanOrEqualTo(Integer value) {
            addCriterion("buy_amount >=", value, "buyAmount");
            return (Criteria) this;
        }

        public Criteria andBuyAmountLessThan(Integer value) {
            addCriterion("buy_amount <", value, "buyAmount");
            return (Criteria) this;
        }

        public Criteria andBuyAmountLessThanOrEqualTo(Integer value) {
            addCriterion("buy_amount <=", value, "buyAmount");
            return (Criteria) this;
        }

        public Criteria andBuyAmountIn(List<Integer> values) {
            addCriterion("buy_amount in", values, "buyAmount");
            return (Criteria) this;
        }

        public Criteria andBuyAmountNotIn(List<Integer> values) {
            addCriterion("buy_amount not in", values, "buyAmount");
            return (Criteria) this;
        }

        public Criteria andBuyAmountBetween(Integer value1, Integer value2) {
            addCriterion("buy_amount between", value1, value2, "buyAmount");
            return (Criteria) this;
        }

        public Criteria andBuyAmountNotBetween(Integer value1, Integer value2) {
            addCriterion("buy_amount not between", value1, value2, "buyAmount");
            return (Criteria) this;
        }

        public Criteria andBuyCostIsNull() {
            addCriterion("buy_cost is null");
            return (Criteria) this;
        }

        public Criteria andBuyCostIsNotNull() {
            addCriterion("buy_cost is not null");
            return (Criteria) this;
        }

        public Criteria andBuyCostEqualTo(String value) {
            addCriterion("buy_cost =", value, "buyCost");
            return (Criteria) this;
        }

        public Criteria andBuyCostNotEqualTo(String value) {
            addCriterion("buy_cost <>", value, "buyCost");
            return (Criteria) this;
        }

        public Criteria andBuyCostGreaterThan(String value) {
            addCriterion("buy_cost >", value, "buyCost");
            return (Criteria) this;
        }

        public Criteria andBuyCostGreaterThanOrEqualTo(String value) {
            addCriterion("buy_cost >=", value, "buyCost");
            return (Criteria) this;
        }

        public Criteria andBuyCostLessThan(String value) {
            addCriterion("buy_cost <", value, "buyCost");
            return (Criteria) this;
        }

        public Criteria andBuyCostLessThanOrEqualTo(String value) {
            addCriterion("buy_cost <=", value, "buyCost");
            return (Criteria) this;
        }

        public Criteria andBuyCostLike(String value) {
            addCriterion("buy_cost like", value, "buyCost");
            return (Criteria) this;
        }

        public Criteria andBuyCostNotLike(String value) {
            addCriterion("buy_cost not like", value, "buyCost");
            return (Criteria) this;
        }

        public Criteria andBuyCostIn(List<String> values) {
            addCriterion("buy_cost in", values, "buyCost");
            return (Criteria) this;
        }

        public Criteria andBuyCostNotIn(List<String> values) {
            addCriterion("buy_cost not in", values, "buyCost");
            return (Criteria) this;
        }

        public Criteria andBuyCostBetween(String value1, String value2) {
            addCriterion("buy_cost between", value1, value2, "buyCost");
            return (Criteria) this;
        }

        public Criteria andBuyCostNotBetween(String value1, String value2) {
            addCriterion("buy_cost not between", value1, value2, "buyCost");
            return (Criteria) this;
        }

        public Criteria andBuyShareIsNull() {
            addCriterion("buy_share is null");
            return (Criteria) this;
        }

        public Criteria andBuyShareIsNotNull() {
            addCriterion("buy_share is not null");
            return (Criteria) this;
        }

        public Criteria andBuyShareEqualTo(Double value) {
            addCriterion("buy_share =", value, "buyShare");
            return (Criteria) this;
        }

        public Criteria andBuyShareNotEqualTo(Double value) {
            addCriterion("buy_share <>", value, "buyShare");
            return (Criteria) this;
        }

        public Criteria andBuyShareGreaterThan(Double value) {
            addCriterion("buy_share >", value, "buyShare");
            return (Criteria) this;
        }

        public Criteria andBuyShareGreaterThanOrEqualTo(Double value) {
            addCriterion("buy_share >=", value, "buyShare");
            return (Criteria) this;
        }

        public Criteria andBuyShareLessThan(Double value) {
            addCriterion("buy_share <", value, "buyShare");
            return (Criteria) this;
        }

        public Criteria andBuyShareLessThanOrEqualTo(Double value) {
            addCriterion("buy_share <=", value, "buyShare");
            return (Criteria) this;
        }

        public Criteria andBuyShareIn(List<Double> values) {
            addCriterion("buy_share in", values, "buyShare");
            return (Criteria) this;
        }

        public Criteria andBuyShareNotIn(List<Double> values) {
            addCriterion("buy_share not in", values, "buyShare");
            return (Criteria) this;
        }

        public Criteria andBuyShareBetween(Double value1, Double value2) {
            addCriterion("buy_share between", value1, value2, "buyShare");
            return (Criteria) this;
        }

        public Criteria andBuyShareNotBetween(Double value1, Double value2) {
            addCriterion("buy_share not between", value1, value2, "buyShare");
            return (Criteria) this;
        }

        public Criteria andBuyTimeIsNull() {
            addCriterion("buy_time is null");
            return (Criteria) this;
        }

        public Criteria andBuyTimeIsNotNull() {
            addCriterion("buy_time is not null");
            return (Criteria) this;
        }

        public Criteria andBuyTimeEqualTo(String value) {
            addCriterion("buy_time =", value, "buyTime");
            return (Criteria) this;
        }

        public Criteria andBuyTimeNotEqualTo(String value) {
            addCriterion("buy_time <>", value, "buyTime");
            return (Criteria) this;
        }

        public Criteria andBuyTimeGreaterThan(String value) {
            addCriterion("buy_time >", value, "buyTime");
            return (Criteria) this;
        }

        public Criteria andBuyTimeGreaterThanOrEqualTo(String value) {
            addCriterion("buy_time >=", value, "buyTime");
            return (Criteria) this;
        }

        public Criteria andBuyTimeLessThan(String value) {
            addCriterion("buy_time <", value, "buyTime");
            return (Criteria) this;
        }

        public Criteria andBuyTimeLessThanOrEqualTo(String value) {
            addCriterion("buy_time <=", value, "buyTime");
            return (Criteria) this;
        }

        public Criteria andBuyTimeLike(String value) {
            addCriterion("buy_time like", value, "buyTime");
            return (Criteria) this;
        }

        public Criteria andBuyTimeNotLike(String value) {
            addCriterion("buy_time not like", value, "buyTime");
            return (Criteria) this;
        }

        public Criteria andBuyTimeIn(List<String> values) {
            addCriterion("buy_time in", values, "buyTime");
            return (Criteria) this;
        }

        public Criteria andBuyTimeNotIn(List<String> values) {
            addCriterion("buy_time not in", values, "buyTime");
            return (Criteria) this;
        }

        public Criteria andBuyTimeBetween(String value1, String value2) {
            addCriterion("buy_time between", value1, value2, "buyTime");
            return (Criteria) this;
        }

        public Criteria andBuyTimeNotBetween(String value1, String value2) {
            addCriterion("buy_time not between", value1, value2, "buyTime");
            return (Criteria) this;
        }

        public Criteria andBuyFixedIsNull() {
            addCriterion("buy_fixed is null");
            return (Criteria) this;
        }

        public Criteria andBuyFixedIsNotNull() {
            addCriterion("buy_fixed is not null");
            return (Criteria) this;
        }

        public Criteria andBuyFixedEqualTo(String value) {
            addCriterion("buy_fixed =", value, "buyFixed");
            return (Criteria) this;
        }

        public Criteria andBuyFixedNotEqualTo(String value) {
            addCriterion("buy_fixed <>", value, "buyFixed");
            return (Criteria) this;
        }

        public Criteria andBuyFixedGreaterThan(String value) {
            addCriterion("buy_fixed >", value, "buyFixed");
            return (Criteria) this;
        }

        public Criteria andBuyFixedGreaterThanOrEqualTo(String value) {
            addCriterion("buy_fixed >=", value, "buyFixed");
            return (Criteria) this;
        }

        public Criteria andBuyFixedLessThan(String value) {
            addCriterion("buy_fixed <", value, "buyFixed");
            return (Criteria) this;
        }

        public Criteria andBuyFixedLessThanOrEqualTo(String value) {
            addCriterion("buy_fixed <=", value, "buyFixed");
            return (Criteria) this;
        }

        public Criteria andBuyFixedLike(String value) {
            addCriterion("buy_fixed like", value, "buyFixed");
            return (Criteria) this;
        }

        public Criteria andBuyFixedNotLike(String value) {
            addCriterion("buy_fixed not like", value, "buyFixed");
            return (Criteria) this;
        }

        public Criteria andBuyFixedIn(List<String> values) {
            addCriterion("buy_fixed in", values, "buyFixed");
            return (Criteria) this;
        }

        public Criteria andBuyFixedNotIn(List<String> values) {
            addCriterion("buy_fixed not in", values, "buyFixed");
            return (Criteria) this;
        }

        public Criteria andBuyFixedBetween(String value1, String value2) {
            addCriterion("buy_fixed between", value1, value2, "buyFixed");
            return (Criteria) this;
        }

        public Criteria andBuyFixedNotBetween(String value1, String value2) {
            addCriterion("buy_fixed not between", value1, value2, "buyFixed");
            return (Criteria) this;
        }

        public Criteria andFixedDateIsNull() {
            addCriterion("fixed_date is null");
            return (Criteria) this;
        }

        public Criteria andFixedDateIsNotNull() {
            addCriterion("fixed_date is not null");
            return (Criteria) this;
        }

        public Criteria andFixedDateEqualTo(String value) {
            addCriterion("fixed_date =", value, "fixedDate");
            return (Criteria) this;
        }

        public Criteria andFixedDateNotEqualTo(String value) {
            addCriterion("fixed_date <>", value, "fixedDate");
            return (Criteria) this;
        }

        public Criteria andFixedDateGreaterThan(String value) {
            addCriterion("fixed_date >", value, "fixedDate");
            return (Criteria) this;
        }

        public Criteria andFixedDateGreaterThanOrEqualTo(String value) {
            addCriterion("fixed_date >=", value, "fixedDate");
            return (Criteria) this;
        }

        public Criteria andFixedDateLessThan(String value) {
            addCriterion("fixed_date <", value, "fixedDate");
            return (Criteria) this;
        }

        public Criteria andFixedDateLessThanOrEqualTo(String value) {
            addCriterion("fixed_date <=", value, "fixedDate");
            return (Criteria) this;
        }

        public Criteria andFixedDateLike(String value) {
            addCriterion("fixed_date like", value, "fixedDate");
            return (Criteria) this;
        }

        public Criteria andFixedDateNotLike(String value) {
            addCriterion("fixed_date not like", value, "fixedDate");
            return (Criteria) this;
        }

        public Criteria andFixedDateIn(List<String> values) {
            addCriterion("fixed_date in", values, "fixedDate");
            return (Criteria) this;
        }

        public Criteria andFixedDateNotIn(List<String> values) {
            addCriterion("fixed_date not in", values, "fixedDate");
            return (Criteria) this;
        }

        public Criteria andFixedDateBetween(String value1, String value2) {
            addCriterion("fixed_date between", value1, value2, "fixedDate");
            return (Criteria) this;
        }

        public Criteria andFixedDateNotBetween(String value1, String value2) {
            addCriterion("fixed_date not between", value1, value2, "fixedDate");
            return (Criteria) this;
        }

        public Criteria andRevocationTimeIsNull() {
            addCriterion("revocation_time is null");
            return (Criteria) this;
        }

        public Criteria andRevocationTimeIsNotNull() {
            addCriterion("revocation_time is not null");
            return (Criteria) this;
        }

        public Criteria andRevocationTimeEqualTo(String value) {
            addCriterion("revocation_time =", value, "revocationTime");
            return (Criteria) this;
        }

        public Criteria andRevocationTimeNotEqualTo(String value) {
            addCriterion("revocation_time <>", value, "revocationTime");
            return (Criteria) this;
        }

        public Criteria andRevocationTimeGreaterThan(String value) {
            addCriterion("revocation_time >", value, "revocationTime");
            return (Criteria) this;
        }

        public Criteria andRevocationTimeGreaterThanOrEqualTo(String value) {
            addCriterion("revocation_time >=", value, "revocationTime");
            return (Criteria) this;
        }

        public Criteria andRevocationTimeLessThan(String value) {
            addCriterion("revocation_time <", value, "revocationTime");
            return (Criteria) this;
        }

        public Criteria andRevocationTimeLessThanOrEqualTo(String value) {
            addCriterion("revocation_time <=", value, "revocationTime");
            return (Criteria) this;
        }

        public Criteria andRevocationTimeLike(String value) {
            addCriterion("revocation_time like", value, "revocationTime");
            return (Criteria) this;
        }

        public Criteria andRevocationTimeNotLike(String value) {
            addCriterion("revocation_time not like", value, "revocationTime");
            return (Criteria) this;
        }

        public Criteria andRevocationTimeIn(List<String> values) {
            addCriterion("revocation_time in", values, "revocationTime");
            return (Criteria) this;
        }

        public Criteria andRevocationTimeNotIn(List<String> values) {
            addCriterion("revocation_time not in", values, "revocationTime");
            return (Criteria) this;
        }

        public Criteria andRevocationTimeBetween(String value1, String value2) {
            addCriterion("revocation_time between", value1, value2, "revocationTime");
            return (Criteria) this;
        }

        public Criteria andRevocationTimeNotBetween(String value1, String value2) {
            addCriterion("revocation_time not between", value1, value2, "revocationTime");
            return (Criteria) this;
        }

        public Criteria andStatusIsNull() {
            addCriterion("status is null");
            return (Criteria) this;
        }

        public Criteria andStatusIsNotNull() {
            addCriterion("status is not null");
            return (Criteria) this;
        }

        public Criteria andStatusEqualTo(Integer value) {
            addCriterion("status =", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotEqualTo(Integer value) {
            addCriterion("status <>", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThan(Integer value) {
            addCriterion("status >", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(Integer value) {
            addCriterion("status >=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThan(Integer value) {
            addCriterion("status <", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThanOrEqualTo(Integer value) {
            addCriterion("status <=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusIn(List<Integer> values) {
            addCriterion("status in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotIn(List<Integer> values) {
            addCriterion("status not in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusBetween(Integer value1, Integer value2) {
            addCriterion("status between", value1, value2, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotBetween(Integer value1, Integer value2) {
            addCriterion("status not between", value1, value2, "status");
            return (Criteria) this;
        }

        public Criteria andPayIdIsNull() {
            addCriterion("pay_id is null");
            return (Criteria) this;
        }

        public Criteria andPayIdIsNotNull() {
            addCriterion("pay_id is not null");
            return (Criteria) this;
        }

        public Criteria andPayIdEqualTo(Integer value) {
            addCriterion("pay_id =", value, "payId");
            return (Criteria) this;
        }

        public Criteria andPayIdNotEqualTo(Integer value) {
            addCriterion("pay_id <>", value, "payId");
            return (Criteria) this;
        }

        public Criteria andPayIdGreaterThan(Integer value) {
            addCriterion("pay_id >", value, "payId");
            return (Criteria) this;
        }

        public Criteria andPayIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("pay_id >=", value, "payId");
            return (Criteria) this;
        }

        public Criteria andPayIdLessThan(Integer value) {
            addCriterion("pay_id <", value, "payId");
            return (Criteria) this;
        }

        public Criteria andPayIdLessThanOrEqualTo(Integer value) {
            addCriterion("pay_id <=", value, "payId");
            return (Criteria) this;
        }

        public Criteria andPayIdIn(List<Integer> values) {
            addCriterion("pay_id in", values, "payId");
            return (Criteria) this;
        }

        public Criteria andPayIdNotIn(List<Integer> values) {
            addCriterion("pay_id not in", values, "payId");
            return (Criteria) this;
        }

        public Criteria andPayIdBetween(Integer value1, Integer value2) {
            addCriterion("pay_id between", value1, value2, "payId");
            return (Criteria) this;
        }

        public Criteria andPayIdNotBetween(Integer value1, Integer value2) {
            addCriterion("pay_id not between", value1, value2, "payId");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {
        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}